import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LIUYANJIAO
 * Date: 2024-11-15
 * Time: 21:38
 */
public class slousion3 {

    static class Myhash{
        //底层是想数组一样连续的地址
        //首先开辟连续地址
        //以[47,7,29,11,16,92,22,8,3],除11留余数法
        int[]arr=new int[11];
        //开放地址法生成哈希表，并实现查询功能。
        //创建哈希表
        public int[] createhash1(int[] pre){
            //遍历数组，依此插入
            for (int i = 0; i < pre.length; i++) {
                int pos=pre[i]%11;
                if(arr[pos]!=0){
                    //发生冲突，使用线性探测法
                    while(arr[++pos]!=0);
                }
                arr[pos]=pre[i];
            }
            return arr;
        }
        //在哈希表中查找
        public boolean findhash1(int key){
            int pos=key%11;
            while(arr[pos]!=key){
                pos++;
                if(pos>=arr.length){
                    return false;
                }
            }
            return true;
        }

    public static void main(String[] args) {
        Myhash myhash=new Myhash();
        int[] pre=new int[]{47, 7, 29, 11, 16, 92, 22, 8, 3};
        System.out.println("数组："+Arrays.toString(pre));
        myhash.createhash1(pre);
        System.out.println("是否存在8："+myhash.findhash1(8));
    }
}
}
